This homework is able to recognize a person's face by comparing facial images to that of a known person. The algorithm projects the image onto a "face space" composed of a complete basis of "eigenfaces." Dataset: http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html 1. Please download tar or zip file. 2. There 40 subjects in this datasets and each subject has ten images. The size of image is 112 x 92 pixels. Tasks: 1. Generate five random numbers (e.g. 2, 5, 7, 9, 10) and use them to select five images (i.e., 2nd, 5th, 7th, 9th, and 10th images) from each subject. Using those images to calculate the eigenfaces (if out of memory, please use 20 subjects in the whole homework); 1.1 plot the eigenvalues out and select the cut down value by the figure; 1.2 you should centerize the images (this step can be finished before splitting all images into training and testing datasets); 2. Using KNN (1NN in this project) to do classification; 3. Using 2-fold cross validation to do the above tasks; 4. Resize images from 112 x 92 to 56 x 46 and repeat 3, compare the new results to the results using un-resized images. 5. Apply LDA to do face recognition; (you need use pseudo inverse of matrix calculation in MATLAB) 6. Run PCA first, then using LDA to do face recognition. Programming laguanges: any language is ok. MATLAB should be an easy one. C++ and JAVA are also not difficult. Deadline: Nov. 29. simple report + source code